﻿Public Class MuhCekBozdurKaydet
	Inherits Process

	Dim boztar, cekno As Input

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Start("Bozdurulan çek kaydı", "Bozdurulma tarihini girin.")
				boztar = AddDate("boztar", "Boz. tarihi", "nl", YMD(Today))
				StartBody()
				cekno = AddText("cekno", "Çek no.", "nl;width=9")
				AddList()
				List.AddColumns("ceknoyeni(Çek no.;c;80),cekno(Ref no.;c;80),tarih(Tarih;d;80),kimlik(Kimlik no.;c;90),kime(Alacaklı;l;100%),miktar(Tutar;m;90)")
			Case EventType.ValidateForm
				Help = "Bozdurulan çekleri ekleyip Devam butonuna basın."
				Buttons.Show("Delete.Next")
				e.Result = True
			Case EventType.ValidateInput
				If e.Name = "cekno" Then
					If Not cekno.IsDirty Then Return
					If cekno.IsEmpty Then Return
					Rs = Muhasebe.OdemeEmri.CekOku(Remote, cekno.Get)
					If Check("cekno", Rs.EOF, "Böyle bir çek bulunamadı.") Then Return
					If Check("cekno", Not IsNull(Rs("boztar")), "!Bu çek zaten " & DMY(Rs("boztar")) & " tarihinde bozdurulmuş.") Then Return
					List.InsertRow(0, Rs("ceknoyeni"), Rs("cekno"), Rs("tarih"), Rs("kimlik"), Rs("kime"), Rs("miktar"))
					List.ClearSelection()
					List.Rows(0).Selected = True
					cekno.Reset()
					cekno.Focus()
				End If
			Case EventType.Delete
				If List.NoSelection Then Return
				If Not Confirm("Bu çeki listeden silmek istediğinizden emin misiniz?") Then Return
				List.RemoveSelected()
			Case EventType.Save
				Dim Tutar As Decimal = 0
				Dim CekList As String = ""
				For Each Row As DataGridViewRow In List.Rows
					Tutar += Row.Cells("miktar").Value
					CekList &= "," & Row.Cells("ceknoyeni").Value
				Next
				If Not Confirm(List.RowCount & " adet, toplam " & Fm(Tutar) & " TL tutarında çek bozdurulmuş olarak kaydedilecektir. Devam etmek istiyor musunuz?") Then Return
				Muhasebe.OdemeEmri.CekBozdur(Remote, boztar.get, Mid(CekList, 2))
				Info("Kayıt işlemi başarıyla tamamlandı.")
				ResetForm(True)
		End Select
	End Sub

End Class
